// 这其实算不上mapper层，只是做的一个读取数据库的地方，所有的增删改查都在service实现了，而且也没有索引这回事，直接暴力搜索

// 使用json存储

// 由于数据量不大，我直接每次读取到内存，操作完之后就保存到数据库

export default class BaseMapper {


    static tables = new Object()
    /*
        * @param name: String 表名称
        * @param relaod: Boolean 是否强制加载，忽略缓存
        * @return Object 表结构
    */
    static get(name, reload) {
        // 尝试获取table
        if (!this.tables[name] || reload) {
            let data = localStorage.getItem("$mydb_" + name)
            if (!data) {
                data = "[]"
            }
            this.tables[name] = JSON.parse(data)
        }
        return this.tables[name]
    }

    /*
        * @param name: Stirng 表名称
        * @param obj: Object 如果不为空则用该对象保存并以此更新tables的内容，否则用tables的内容，
    */
    static save(name, obj) {
        if (obj) {
            this.tables[name] = obj
        }
        localStorage.setItem("$mydb_" + name, JSON.stringify(this.tables[name]))
    }

}